package com.ruoyi.system.service.impl;

import com.ruoyi.common.core.domain.entity.MinUser;
import com.ruoyi.common.utils.TokenUtil;

import com.ruoyi.system.domain.vo.LoginVo;
import com.ruoyi.system.mapper.MinUserMapper;
import com.ruoyi.system.service.IMinUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 小程序用户 Service业务层处理
 *
 * @author wzf
 * @date 2021-08-24
 */
@Service
public class MinUserServiceImpl implements IMinUserService {
    @Autowired
    private MinUserMapper minUserMapper;

    /**
     * 查询小程序用户
     *
     * @param id 小程序用户 主键
     * @return 小程序用户
     */
//    @Override
//    public MinUser selectMinUserById(Long id) {
//        return minUserMapper.selectMinUserById(id);
//    }

    /**
     * 查询小程序用户
     *
     * @param openid 小程序用户 主键
     * @return 小程序用户
     */
    @Override
    public MinUser selectMinUserByOpenId(String openid) {
        return minUserMapper.selectMinUserByOpenId(openid);
    }

    /**
     * 查询小程序用户 列表
     *
     * @param minUser 小程序用户
     * @return 小程序用户
     */
    @Override
    public List<MinUser> selectMinUserList(MinUser minUser) {
        return minUserMapper.selectMinUserList(minUser);
    }

//    /**
//     * 新增小程序用户
//     *
//     * @param minUser 小程序用户
//     * @return 结果
//     */
//    @Override
//    public int insertMinUser(MinUser minUser) {
//        return minUserMapper.insertMinUser(minUser);
//    }

//    /**
//     * 修改小程序用户
//     *
//     * @param minUser 小程序用户
//     * @return 结果
//     */
//    @Override
//    public int updateMinUser(MinUser minUser) {
//        return minUserMapper.updateMinUser(minUser);
//    }

//    /**
//     * 批量删除小程序用户
//     *
//     * @param ids 需要删除的小程序用户 主键
//     * @return 结果
//     */
//    @Override
//    public int deleteMinUserByIds(Long[] ids) {
//        return minUserMapper.deleteMinUserByIds(ids);
//    }

//    /**
//     * 删除小程序用户 信息
//     *
//     * @param id 小程序用户 主键
//     * @return 结果
//     */
//    @Override
//    public int deleteMinUserById(Long id) {
//        return minUserMapper.deleteMinUserById(id);
//    }

    @Override
    public String autoLogin(LoginVo loginVo) {
        MinUser minUser = minUserMapper.selectMinUserByOpenId(loginVo.getOpenid());
        if (minUser == null) {
            minUser = new MinUser();
            minUser.setUname(loginVo.getUname())
                    .setUphone(loginVo.getUphone())
                    .setOpenid(loginVo.getOpenid())
                    .setUnionid(loginVo.getUnionid())
                    .setAvatar(loginVo.getAvatar())
                    .setUtype(loginVo.getUtype())
                    .setGender(loginVo.getGender())
                    .setCity(loginVo.getCity())
                    .setCountry(loginVo.getCountry())
                    .setNickName(loginVo.getNickName())
                    .setProvince(loginVo.getProvince())
                    .setCreatedTime(new Date());
            minUserMapper.insertMinUser(minUser);
        }
        return TokenUtil.createToken(loginVo.getOpenid());
    }


//    @Override
//    public List<HashMap<String, Object>> autoLoginPhone(long phone) {
//        return minUserMapper.autoLoginPhone(phone);
//    }


    @Override
    public List<HashMap<String, Object>> selectPersonByOpenId(String openId){

        return minUserMapper.selectPersonByOpenId(openId);
    }

}
